package com.my.zl.common.utils;

import com.my.zl.common.dto.ResDTO;
import com.my.zl.common.enums.resp.GlobalEnum;
import com.my.zl.common.enums.resp.RespEnum;

/**
 * 公共返回体
 */
public class ReturnUtil {
    
    /**
     * 默认返回成功
     * @param data 数据对象
     * @return
     */
    public static <T> ResDTO<T> successDATA(T data) {
        return returnDATA(GlobalEnum.SUCCESS.getCode(), GlobalEnum.SUCCESS.getMsg(), data);
    }
    
    /**
     * 默认返回失败
     * @param data 数据对象
     * @return
     */
    public static <T> ResDTO<T> errorDATA(T data) {
        return returnDATA(GlobalEnum.ERROR.getCode(), GlobalEnum.ERROR.getMsg(), data);
    }
    
    /**
     * 常规返回
     * @param code 应答码枚举
     * @param data 数据对象
     * @return
     */
    public static <T> ResDTO<T> returnDATA(RespEnum code, T data) {
        return returnDATA(code.getCode(), code.getMsg(), data);
    }

    /**
     * 常规返回
     * @param code 应答码枚举
     * @return
     */
    public static <T> ResDTO<T> returnDATA(RespEnum code) {
        return returnDATA(code.getCode(), code.getMsg(), null);
    }
    
    /**
     * 常规返回
     * @param code 应答码
     * @param msg 应答码描述
     * @return
     */
    public static <T> ResDTO<T> returnDATA(String code, String msg) {
        return returnDATA(code, msg, null);
    }
    
    /**
     * 常规返回
     * @param code 应答码
     * @param msg 应答码描述
     * @param data 数据对象
     * @return
     */
    public static <T> ResDTO<T> returnDATA(String code, String msg, T data) {
        ResDTO<T> resdata = new ResDTO<T>();
        resdata.setBusCode(code);
        resdata.setBusMsg(msg);
        resdata.setResData(data);
        return resdata;
    }
}
